home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / g_man / cat3 / OpenGL / glhistogramext.z / glhistogramext
Encoding:
Text File  |  2002-10-03  |  14.5 KB  |  199 lines

  1.  
  2.  
  3.  
  4. ggggllllHHHHiiiissssttttooooggggrrrraaaammmmEEEEXXXXTTTT((((3333GGGG))))             OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee             ggggllllHHHHiiiissssttttooooggggrrrraaaammmmEEEEXXXXTTTT((((3333GGGG))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      ggggllllHHHHiiiissssttttooooggggrrrraaaammmmEEEEXXXXTTTT - define histogram table
  10.  
  11.  
  12. CCCC SSSSPPPPEEEECCCCIIIIFFFFIIIICCCCAAAATTTTIIIIOOOONNNN
  13.      void ggggllllHHHHiiiissssttttooooggggrrrraaaammmmEEEEXXXXTTTT( GLenum _t_a_r_g_e_t,
  14.                           GLsizei _w_i_d_t_h,
  15.                           GLenum _i_n_t_e_r_n_a_l_f_o_r_m_a_t,
  16.                           GLboolean _s_i_n_k )
  17.  
  18.  
  19. PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
  20.      _t_a_r_g_e_t          The histogram whose parameters are to be set.  Must be
  21.                      one of GGGGLLLL____HHHHIIIISSSSTTTTOOOOGGGGRRRRAAAAMMMM____EEEEXXXXTTTT or GGGGLLLL____PPPPRRRROOOOXXXXYYYY____HHHHIIIISSSSTTTTOOOOGGGGRRRRAAAAMMMM____EEEEXXXXTTTT.
  22.  
  23.      _w_i_d_t_h           The number of entries in the histogram table.  Must be a
  24.                      power of 2.
  25.  
  26.      _i_n_t_e_r_n_a_l_f_o_r_m_a_t  The format of entries in the histogram table.  Must be
  27.                      one of GGGGLLLL____AAAALLLLPPPPHHHHAAAA, GGGGLLLL____AAAALLLLPPPPHHHHAAAA4444____EEEEXXXXTTTT, GGGGLLLL____AAAALLLLPPPPHHHHAAAA8888____EEEEXXXXTTTT,
  28.                      GGGGLLLL____AAAALLLLPPPPHHHHAAAA11112222____EEEEXXXXTTTT, GGGGLLLL____AAAALLLLPPPPHHHHAAAA11116666____EEEEXXXXTTTT, GGGGLLLL____LLLLUUUUMMMMIIIINNNNAAAANNNNCCCCEEEE,
  29.                      GGGGLLLL____LLLLUUUUMMMMIIIINNNNAAAANNNNCCCCEEEE4444____EEEEXXXXTTTT, GGGGLLLL____LLLLUUUUMMMMIIIINNNNAAAANNNNCCCCEEEE8888____EEEEXXXXTTTT, GGGGLLLL____LLLLUUUUMMMMIIIINNNNAAAANNNNCCCCEEEE11112222____EEEEXXXXTTTT,
  30.                      GGGGLLLL____LLLLUUUUMMMMIIIINNNNAAAANNNNCCCCEEEE11116666____EEEEXXXXTTTT, GGGGLLLL____LLLLUUUUMMMMIIIINNNNAAAANNNNCCCCEEEE____AAAALLLLPPPPHHHHAAAA,
  31.                      GGGGLLLL____LLLLUUUUMMMMIIIINNNNAAAANNNNCCCCEEEE4444____AAAALLLLPPPPHHHHAAAA4444____EEEEXXXXTTTT, GGGGLLLL____LLLLUUUUMMMMIIIINNNNAAAANNNNCCCCEEEE6666____AAAALLLLPPPPHHHHAAAA2222____EEEEXXXXTTTT,
  32.                      GGGGLLLL____LLLLUUUUMMMMIIIINNNNAAAANNNNCCCCEEEE8888____AAAALLLLPPPPHHHHAAAA8888____EEEEXXXXTTTT, GGGGLLLL____LLLLUUUUMMMMIIIINNNNAAAANNNNCCCCEEEE11112222____AAAALLLLPPPPHHHHAAAA4444____EEEEXXXXTTTT,
  33.                      GGGGLLLL____LLLLUUUUMMMMIIIINNNNAAAANNNNCCCCEEEE11112222____AAAALLLLPPPPHHHHAAAA11112222____EEEEXXXXTTTT, GGGGLLLL____LLLLUUUUMMMMIIIINNNNAAAANNNNCCCCEEEE11116666____AAAALLLLPPPPHHHHAAAA11116666____EEEEXXXXTTTT,
  34.                      GGGGLLLL____RRRRGGGGBBBB, GGGGLLLL____RRRRGGGGBBBB2222____EEEEXXXXTTTT, GGGGLLLL____RRRRGGGGBBBB4444____EEEEXXXXTTTT, GGGGLLLL____RRRRGGGGBBBB5555____EEEEXXXXTTTT,
  35.                      GGGGLLLL____RRRRGGGGBBBB8888____EEEEXXXXTTTT, GGGGLLLL____RRRRGGGGBBBB11110000____EEEEXXXXTTTT, GGGGLLLL____RRRRGGGGBBBB11112222____EEEEXXXXTTTT, GGGGLLLL____RRRRGGGGBBBB11116666____EEEEXXXXTTTT,
  36.                      GGGGLLLL____RRRRGGGGBBBBAAAA, GGGGLLLL____RRRRGGGGBBBBAAAA2222____EEEEXXXXTTTT, GGGGLLLL____RRRRGGGGBBBBAAAA4444____EEEEXXXXTTTT, GGGGLLLL____RRRRGGGGBBBB5555____AAAA1111____EEEEXXXXTTTT,
  37.                      GGGGLLLL____RRRRGGGGBBBBAAAA8888____EEEEXXXXTTTT, GGGGLLLL____RRRRGGGGBBBB11110000____AAAA2222____EEEEXXXXTTTT, GGGGLLLL____RRRRGGGGBBBBAAAA11112222____EEEEXXXXTTTT, or
  38.                      GGGGLLLL____RRRRGGGGBBBBAAAA11116666____EEEEXXXXTTTT.
  39.  
  40.      _s_i_n_k            If GGGGLLLL____TTTTRRRRUUUUEEEE, pixels will be consumed by the histogramming
  41.                      process and no drawing or texture loading will take
  42.                      place.  If GGGGLLLL____FFFFAAAALLLLSSSSEEEE, pixels will proceed to the minmax
  43.                      process after histogramming.
  44.  
  45. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  46.      Histogramming is part of the OpenGL pixel transfer process.  It takes
  47.      place immediately after index lookup.  Histogramming is performed only
  48.      for RGBA pixels (though these may be specified originally as color
  49.      indices and converted to RGBA by index table lookup).  Histogramming is
  50.      enabled with ggggllllEEEEnnnnaaaabbbblllleeee and disabled with ggggllllDDDDiiiissssaaaabbbblllleeee.
  51.  
  52.      When GGGGLLLL____HHHHIIIISSSSTTTTOOOOGGGGRRRRAAAAMMMM____EEEEXXXXTTTT is enabled, RGBA color components are converted to
  53.      histogram table indices by clamping to the range [0,1], multiplying by
  54.      the width of the histogram table, and rounding to the nearest integer.
  55.      The table entries selected by the RGBA indices are then incremented.  (If
  56.      the internal format of the histogram table includes luminance, then the
  57.      index derived from the R color component determines the luminance table
  58.      entry to be incremented.)  If a histogram table entry is incremented
  59.      beyond its maximum value, then its value becomes undefined.  (This is not
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ggggllllHHHHiiiissssttttooooggggrrrraaaammmmEEEEXXXXTTTT((((3333GGGG))))             OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee             ggggllllHHHHiiiissssttttooooggggrrrraaaammmmEEEEXXXXTTTT((((3333GGGG))))
  71.  
  72.  
  73.  
  74.      an error.)
  75.  
  76.      When _t_a_r_g_e_t is GGGGLLLL____HHHHIIIISSSSTTTTOOOOGGGGRRRRAAAAMMMM____EEEEXXXXTTTT, ggggllllHHHHiiiissssttttooooggggrrrraaaammmmEEEEXXXXTTTT redefines the current
  77.      histogram table to have _w_i_d_t_h entries of the format specified by
  78.      _i_n_t_e_r_n_a_l_f_o_r_m_a_t.  The entries are indexed 0 through _w_i_d_t_h-1, and all
  79.      entries are initialized to zero.  The values in the previous histogram
  80.      table, if any, are lost.  If _s_i_n_k is GGGGLLLL____TTTTRRRRUUUUEEEE, then pixels are discarded
  81.      after histogramming; no further processing of the pixels takes place, and
  82.      no drawing, texture loading, or pixel readback will result.
  83.  
  84.      When _t_a_r_g_e_t is GGGGLLLL____PPPPRRRROOOOXXXXYYYY____HHHHIIIISSSSTTTTOOOOGGGGRRRRAAAAMMMM____EEEEXXXXTTTT, ggggllllHHHHiiiissssttttooooggggrrrraaaammmmEEEEXXXXTTTT computes all state
  85.      information as if the histogram table was to be redefined, but does not
  86.      actually define the new table.  If the requested histogram table is too
  87.      large to be supported, then the state information will be set to zero.
  88.      This provides a way to determine if a histogram table with the given
  89.      parameters can be supported.
  90.  
  91.      The histogram state information may be queried by calling
  92.      ggggllllGGGGeeeettttHHHHiiiissssttttooooggggrrrraaaammmmPPPPaaaarrrraaaammmmeeeetttteeeerrrrEEEEXXXXTTTT with a _t_a_r_g_e_t of GGGGLLLL____HHHHIIIISSSSTTTTOOOOGGGGRRRRAAAAMMMM____EEEEXXXXTTTT (to obtain
  93.      information for the current histogram table) or GGGGLLLL____PPPPRRRROOOOXXXXYYYY____HHHHIIIISSSSTTTTOOOOGGGGRRRRAAAAMMMM____EEEEXXXXTTTT
  94.      (to obtain information from the most recent proxy request) and one of the
  95.      following values for the _p_n_a_m_e argument:
  96.  
  97.     Parameter                         Description
  98.     ___________________________________________________________________________
  99.     GGGGLLLL____HHHHIIIISSSSTTTTOOOOGGGGRRRRAAAAMMMM____WWWWIIIIDDDDTTTTHHHH____EEEEXXXXTTTT            Histogram table width
  100.     GGGGLLLL____HHHHIIIISSSSTTTTOOOOGGGGRRRRAAAAMMMM____FFFFOOOORRRRMMMMAAAATTTT____EEEEXXXXTTTT           Internal format
  101.     GGGGLLLL____HHHHIIIISSSSTTTTOOOOGGGGRRRRAAAAMMMM____RRRREEEEDDDD____SSSSIIIIZZZZEEEE____EEEEXXXXTTTT         Red component counter size, in bits
  102.     GGGGLLLL____HHHHIIIISSSSTTTTOOOOGGGGRRRRAAAAMMMM____GGGGRRRREEEEEEEENNNN____SSSSIIIIZZZZEEEE____EEEEXXXXTTTT       Green component counter size, in bits
  103.     GGGGLLLL____HHHHIIIISSSSTTTTOOOOGGGGRRRRAAAAMMMM____BBBBLLLLUUUUEEEE____SSSSIIIIZZZZEEEE____EEEEXXXXTTTT        Blue component counter size, in bits
  104.     GGGGLLLL____HHHHIIIISSSSTTTTOOOOGGGGRRRRAAAAMMMM____AAAALLLLPPPPHHHHAAAA____SSSSIIIIZZZZEEEE____EEEEXXXXTTTT       Alpha component counter size, in bits
  105.     GGGGLLLL____HHHHIIIISSSSTTTTOOOOGGGGRRRRAAAAMMMM____LLLLUUUUMMMMIIIINNNNAAAANNNNCCCCEEEE____SSSSIIIIZZZZEEEE____EEEEXXXXTTTT   Luminance component counter size, in bits
  106.     GGGGLLLL____HHHHIIIISSSSTTTTOOOOGGGGRRRRAAAAMMMM____SSSSIIIINNNNKKKK____EEEEXXXXTTTT             Value of the _s_i_n_k parameter
  107.  
  108. EEEERRRRRRRROOOORRRRSSSS
  109.      GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____EEEENNNNUUUUMMMM is generated if _t_a_r_g_e_t is not one of the allowable
  110.      values.
  111.  
  112.      GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____VVVVAAAALLLLUUUUEEEE is generated if _w_i_d_t_h is less than zero or is not a
  113.      power of 2.
  114.  
  115.      GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____EEEENNNNUUUUMMMM is generated if _i_n_t_e_r_n_a_l_f_o_r_m_a_t is not one of the
  116.      allowable values.
  117.  
  118.      GGGGLLLL____TTTTAAAABBBBLLLLEEEE____TTTTOOOOOOOO____LLLLAAAARRRRGGGGEEEE____EEEEXXXXTTTT is generated if _t_a_r_g_e_t is GGGGLLLL____HHHHIIIISSSSTTTTOOOOGGGGRRRRAAAAMMMM____EEEEXXXXTTTT and the
  119.      histogram table specified is too large for the implementation.
  120.  
  121.      GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____OOOOPPPPEEEERRRRAAAATTTTIIIIOOOONNNN is generated if ggggllllHHHHiiiissssttttooooggggrrrraaaammmmEEEEXXXXTTTT is executed between
  122.      the execution of ggggllllBBBBeeeeggggiiiinnnn and the corresponding execution of ggggllllEEEEnnnndddd.
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. ggggllllHHHHiiiissssttttooooggggrrrraaaammmmEEEEXXXXTTTT((((3333GGGG))))             OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee             ggggllllHHHHiiiissssttttooooggggrrrraaaammmmEEEEXXXXTTTT((((3333GGGG))))
  137.  
  138.  
  139.  
  140. AAAASSSSSSSSOOOOCCCCIIIIAAAATTTTEEEEDDDD GGGGEEEETTTTSSSS
  141.      ggggllllGGGGeeeettttHHHHiiiissssttttooooggggrrrraaaammmmPPPPaaaarrrraaaammmmeeeetttteeeerrrrEEEEXXXXTTTT.
  142.  
  143.  
  144. MMMMAAAACCCCHHHHIIIINNNNEEEE DDDDEEEEPPPPEEEENNNNDDDDEEEENNNNCCCCIIIIEEEESSSS
  145.      On RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee, RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee2222, and VVVVTTTTXXXX systems, histogram and minmax
  146.      may not be used when rendering to pixmaps.
  147.  
  148.  
  149. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  150.      ggggllllGGGGeeeettttHHHHiiiissssttttooooggggrrrraaaammmmEEEEXXXXTTTT, ggggllllRRRReeeesssseeeettttHHHHiiiissssttttooooggggrrrraaaammmmEEEEXXXXTTTT.
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.